/*
 * Estructurado.cpp
 *
 *  Created on: 12/06/2012
 *      Author: danielspacek
 */

#include "Estructurado"

Estructurado::Estructurado(Aritmetico* aritmetico) {
	// Instancio un compresor aritmético y se lo paso al constructor en TODOS los niveles
	this->aritmetico = aritmetico;

	// Instancio los niveles
	int i = 0;

	this->contadorBytes = 0;
/*
	// instancio del último al primero, así configuro el nivel siguiente
	this->niveles[NIVELES-1] = new Nivel(NIVELES-1, aritmetico, NULL);

	for(i = NIVELES - 2; i >= 0; i--)
	{
		niveles[i] = new Nivel(i, aritmetico, niveles[i+1]);
	}
*/

	// Sin recursividad
	for(i=0;i<NIVELES;i++)
	{
		this->niveles[i] = new Nivel(i, aritmetico);
	}
}

Estructurado::~Estructurado() {
	for(int i = 0; i < NIVELES; i++) {delete niveles[i];}
}

void Estructurado::resetearEstadisticas()
{
	// Reseteo de las estadísticas cuando me paso del techo del aritmético
	int i;
	for(i=0;i<NIVELES;i++)
	{
		this->niveles[i]->reiniciarEstadisticas();
	}
}
